#include<assert.h>
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<time.h>
#include<string.h>
void InsertSort(int* a, int n);

void ShellSort(int* a, int n);

void HeapSort(int* arr, int n);

void bubbleSort(int* arr, int n);

void SelectSort(int* arr, int n);

//void QuickSort(int* arr, int a,int b);

void my_InsertSort(int* arr,int n);

void QuickSort_2(int* arr, int a, int b);

int PartSort1(int* a, int left, int right);

int PartSort2(int* a, int left, int right);

int PartSort3(int* a, int left, int right);

void QuickSort1(int* a, int left, int right);
void QuickSort2(int* a, int left, int right);
void QuickSort3(int* a, int left, int right);

void QuickSortNonR(int* a, int left, int right);

void MergeSort(int* a, int n);
void MergeSortNonR(int* a, int n);

void CountSort(int* a, int n);
